/**
 *  因为H5的项目中无法使用微信的扫一扫api:weixin.scanQRCode，所以用以下方法暂时处理H5项目扫码问题
 *  通过qrcode.min.js实现H5二维码扫码
 *  该方法已挂载到vue的原型上了，可以直接用过this.$qrCodeForH5(); 使用
 */

import { qrcode } from './qrcode.min.js';

// 使用uni.chooseImage打开相机 或者 相册选择二维码的图片 和 qrcode.min.js里面的解码方法解析二维码
const $qrCodeForH5 = function() {
    let self = this;
    uni.chooseImage({
        count: 1, 
        sizeType: ['original', 'compressed'], //指定是原图和压缩图
        sourceType: ['album','camera'],
        success: function (res) {
            qrcode.decode(getObjectURL(res.tempFiles[0]));
            qrcode.callback = function(res1) {
                if (res1.indexOf('error') >= 0) {
                    //失败
                    self.alert('扫码失败 或者 该图片无二维码！');
                }else{
                    //成功
                    window.location.href = res1;
                }					
            }
        }
    });
};

// 图片地址转换
function getObjectURL(file) {
    let url = null;
    if (window.createObjectURL !== undefined) { // basic
        url = window.createObjectURL(file);
    } else if (window.URL !== undefined) { // mozilla(firefox)
        url = window.URL.createObjectURL(file);
    } else if (window.webkitURL !== undefined) { // webkit or chrome
        url = window.webkitURL.createObjectURL(file);
    }
    return url
};

export default $qrCodeForH5;